﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Conexion;

namespace AccesoDatos.Manejador
{
    public class Manejador_Pagos
    {
        public DataTable RegresaAlmacenesPagos()
        {
            DataTable dtTramites = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                dtTramites = objConn.Datatable_standart("sp_RMA_CargaAlmacenesPagos");
                return dtTramites;
            }
            catch (Exception ex)
            {
                return dtTramites;
            }
        }
        public DataTable RegresaInfoPagos(string strCodProv, string strRmaProv, string strProducto)
        {
            DataTable dtTramites = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@CodProv", strCodProv));
                lstParametros.Add(new clsParametros("@RmaProv", strRmaProv));
                lstParametros.Add(new clsParametros("@Producto", strProducto));
                dtTramites = objConn.Datatable_standart("sp_RMA_CargaListadoAplicarPagos", lstParametros);
                return dtTramites;
            }
            catch (Exception ex)
            {
                return dtTramites;
            }

        }

        public bool GuardaPagos(string strFolio, DateTime dtFecha, int intIdStatus, string Accion, int intIdUsuario, string strDetalle, string strReferencia, int intOculto)
        {
            bool Guarda = false;

            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Folio", strFolio));
                lstParametros.Add(new clsParametros("@Fecha", dtFecha.ToString("yyyy/MM/dd")));
                lstParametros.Add(new clsParametros("@id_estatus", intIdStatus.ToString()));
                lstParametros.Add(new clsParametros("@Accion", Accion));
                lstParametros.Add(new clsParametros("@id_usuario", intIdUsuario.ToString()));
                lstParametros.Add(new clsParametros("@detalle", strDetalle));
                lstParametros.Add(new clsParametros("@referencia", strReferencia));
                lstParametros.Add(new clsParametros("@oculto", intOculto.ToString()));
                Guarda = objConn.Procedure_standart("sp_RMA_GuardaPagos", lstParametros);
                return Guarda;
            }
            catch (Exception ex)
            {
                return Guarda;
            }
        }

        public DataTable RegresaFoliosAltaPagos(string strProducto, string strAlmacen, string strProvId)
        {
            DataTable dtTramites = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Producto", strProducto));
                lstParametros.Add(new clsParametros("@AlmId", strAlmacen));
                lstParametros.Add(new clsParametros("@ProvId", strProvId));
                dtTramites = objConn.Datatable_standart("sp_RMA_CargaFoliosAltaPagos", lstParametros);
                return dtTramites;
            }
            catch (Exception ex)
            {
                return dtTramites;
            }
        }
        public bool GuardaAltaPagos(string strIdAlm, string strProdID, string strIdProv, string strSerie, string strTicket, string strClavePago)
        {
            bool Guarda = false;

            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@IdAlm", strIdAlm));
                lstParametros.Add(new clsParametros("@ProID", strProdID));
                lstParametros.Add(new clsParametros("@Id_Prov", strIdProv));
                lstParametros.Add(new clsParametros("@Serie", strSerie));
                lstParametros.Add(new clsParametros("@Ticket_Pagado", strTicket));
                lstParametros.Add(new clsParametros("@ClavePago", strClavePago));
                Guarda = objConn.Procedure_standart("sp_RMA_GuardaAltaPagos", lstParametros);
                return Guarda;
            }
            catch (Exception ex)
            {
                return Guarda;
            }
        }
        public bool GuardaNotasCredito(string strFolioTicket, string strFolioNota, decimal decMonto, string strMoneda)
        {
            bool Guarda = false;

            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Folio_Ticket", strFolioTicket));
                lstParametros.Add(new clsParametros("@FolioNota", strFolioNota));
                lstParametros.Add(new clsParametros("@Monto", decMonto.ToString()));
                lstParametros.Add(new clsParametros("@Moneda", strMoneda));
                Guarda = objConn.Procedure_standart("sp_RMA_AgregaNotasCreditoPago", lstParametros);
                return Guarda;
            }
            catch (Exception ex)
            {
                return Guarda;
            }
        }
        public DataTable RegresaListadoAltaPagos()
        {
            DataTable dtTramites = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                dtTramites = objConn.Datatable_standart("sp_RMA_CargaListadoAltaPagos", lstParametros);
                return dtTramites;
            }
            catch (Exception ex)
            {
                return dtTramites;
            }
        }
        public DataTable CargaDatosEditarPagos(string strTicket, string strProducto)
        {
            DataTable dtTramites = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Ticket", strTicket));
                lstParametros.Add(new clsParametros("@Producto", strProducto));
                dtTramites = objConn.Datatable_standart("sp_RMA_CargaDatosAplicaPagos", lstParametros);
                return dtTramites;
            }
            catch (Exception ex)
            {
                return dtTramites;
            }
        }
        public bool EliminaAltaPagos(int intId)
        {
            bool Elimina = false;

            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Id", intId.ToString()));
                Elimina = objConn.Procedure_standart("sp_RMA_EliminaAltaPago", lstParametros);
                return Elimina;
            }
            catch (Exception ex)
            {
                return Elimina;
            }
        }

        public bool ModificarPagos(int id, string strIdAlm, string strProducto, string strIdProv, string strSerie)
        {
            bool Modifica = false;

            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Id", id.ToString()));
                lstParametros.Add(new clsParametros("@IdAlm", strIdAlm));
                lstParametros.Add(new clsParametros("@Producto", strProducto));
                lstParametros.Add(new clsParametros("@IdProv", strIdProv));
                lstParametros.Add(new clsParametros("@Serie", strSerie));
                Modifica = objConn.Procedure_standart("sp_RMA_ModificaPagos", lstParametros);
                return Modifica;
            }
            catch (Exception ex)
            {
                return Modifica;
            }
        }
        


    }
}
